Data can be an abstract term. In the context of computing environments and system, data can generally encompass all forms of information storable in a computer readable medium (e.g., memory, hard disk). Data and in particular, one or more instances of data can also be referred to as data object(s). As is generally known in the art, a data object can for example, be an actual instance of data, a class, type, or form data, and so on.
The term database can refer to a collection of data and/or data structures typically stored in a digital form. Data can be stored in a database for various reasons and to serve various entities or “users.” Generally, data stored in the database can be used by the database users. A user of a database can, for example, be a person, a database administrator, a computer application designed to interact with a database, etc. A very simple database or database system can, for example, be provided on a Personal Computer (PC) by storing data on a Hard Disk (e.g., contact information) and executing a computer program that allows access to the data. The executable computer program can be referred to as a database program or a database management program. The executable computer program can, for example, retrieve and display data (e.g., a list of names with their phone numbers) based on a request submitted by a person (e.g., show me the phone numbers of all my friends in Ohio).
Generally, database systems are much more complex than the example noted above. In addition, databases have evolved over the years and are used in various businesses and organizations (e.g., banks, retail stores, governmental agencies, universities). Today, databases can be very complex. Some databases can support several users simultaneously and allow them to make very complex queries (e.g., give me the names of all customers under the age of thirty five (35) in Ohio that have bought all the items in a given list of items in the past month and also have bought a ticket for a baseball game and purchased a baseball hat in the past 10 years).
Typically, a Database Manager (DM) or a Database Management System (DBMS) is provided for relatively large and/or complex databases. As known in the art, a DBMS can effectively manage the database or data stored in a database, and serve as an interface for the users of the database. A DBMS can be provided as an executable computer program (or software) product as is also known in the art.
It should also be noted that a database can be organized in accordance with a Data Model. Notable Data Models include a Relational Model, an Entity-relationship model, and an Object Model. The design and maintenance of a complex database can require highly specialized knowledge and skills by database application programmers, DBMS developers/programmers, database administrators (DBAs), etc. To assist in design and maintenance of a complex database, various tools can be provided, either as part of the DBMS or as free-standing (stand-alone) software products. These tools can include specialized Database languages (e.g., Data Description Languages, Data Manipulation Languages, Query Languages). Database languages can be specific to one data model or to one DBMS type. One widely supported language is Structured Query Language (SQL) developed, by in large, for Relational Model and can combine the roles of Data Description Language, Data Manipulation language, and a Query Language.
Today, databases have become prevalent in virtually all aspects of business and personal life. Moreover, database use is likely to continue to grow even more rapidly and widely across all aspects of commerce. Generally, databases and DBMS that manage them can be very large and extremely complex partly in order to support an ever increasing need to store data and analyze data. Typically, larger databases are used by larger organizations. Larger databases are supported by a relatively large amount of capacity, including computing capacity (e.g., processor and memory) to allow them to perform many tasks and/or complex tasks effectively at the same time (or in parallel). On the other hand, smaller databases systems are also available today and can be used by smaller organizations. In contrast to larger databases, smaller databases can operate with less capacity.
A popular type of database in use today is the relational database with a Relational Database Management System (RDBMS), which includes relational tables, also referred to as relations, made up of rows and columns (also referred to as tuples and attributes). In a relational database, each row represents an occurrence of an entity defined by a table, with an entity being a person, place, thing, or other object about which the table contains information.
One important aspect of computing is data compression. As those skilled in the art readily appreciate, data compression can play an important role in various computing environments and computer systems presently in use today. Generally, data compression can reduce the storage space needed to store data in a computing environment or system. In addition, network and Input/output (I/O) bandwidth can be improved by compressing data in a compressed form and using the compressed form to, for example, read, write and/or exchange data over a network.
As such, the importance of data compression is well recognized. This importance is further evidenced by the large number of data compression techniques (or methods or functions) that are widely known and used today. Data compression has been important and in use for database systems for some time now, but its importance is likely to become even more significant as databases store more and more data.
In particular, databases today are increasingly storing more and more timing information for data. Timing information can, for example, represent a period of time with a start and end date where data is considered to be valid, or provide a timestamp indicative of when data was last updated. In a more recently developed type of a database, often referred to as a temporal database, timing information (e.g. a Period Data Type (PDT) with a start and end time) can be considered to be a foundation that enables the storage and retention of changes to data.
In view of the ever increasing need to store more and more data in various computing environments and systems including database system and environments, data compression is very useful and is likely to become even more useful in the future.